July 31, 2025

Open Search

📘 ¿Qué es OpenSearch?

Amazon OpenSearch Service es un servicio completamente administrado que permite buscar, analizar y visualizar grandes volúmenes de datos en tiempo real. Es la evolución del servicio Amazon Elasticsearch, basado en el proyecto OpenSearch (open-source, liderado por AWS).

Ideal para observabilidad, búsqueda full-text, analytics de logs y monitoreo de seguridad.


🧩 Componentes clave de OpenSearch

ComponenteDescripción
ClusterConjunto de nodos que almacena, indexa y busca datos
IndexSimilar a una base de datos relacional. Contiene documentos relacionados
DocumentUnidad básica de información (formato JSON)
ShardFragmento de un índice (para escalabilidad y performance)
ReplicaCopia de un shard para alta disponibilidad
DashboardsInterfaz de visualización y análisis de datos (similar a Kibana)
Ingest pipelineFlujo que permite transformar datos al ser indexados

🔍 Casos de uso principales

  • 🔎 Búsqueda full-text en aplicaciones web o móviles

  • 📊 Análisis y visualización de logs (CloudWatch, Fluent Bit, etc.)

  • 🛡️ Monitoreo de seguridad (SIEM con OpenSearch Dashboards)

  • 🧠 Machine learning ligero para detección de anomalías

  • 🚨 Alerting con condiciones sobre series temporales


⚙️ Flujo típico de uso

[Fuente de datos] → [Ingesta (Logstash, Fluent Bit, Lambda)] → [OpenSearch] → [Dashboards / API]

Fuentes comunes:

  • Amazon CloudWatch Logs

  • Amazon Kinesis Data Firehose

  • Fluent Bit, Logstash

  • Aplicaciones personalizadas (SDK, HTTP API)


🛠️ Funcionalidades avanzadas

FuncionalidadDescripción
OpenSearch DashboardsInterfaz web para visualizar datos con gráficos, tablas, mapas, etc.
AlertingCrea condiciones y notificaciones por email, Slack, webhook, etc.
Anomaly DetectionDetección de comportamiento inusual en series temporales
Index Lifecycle MgmtControla el ciclo de vida del almacenamiento: hot → warm → cold → delete
Fine-grained accessControl de acceso granular por usuarios y roles (IAM + RBAC)
EncryptionEn tránsito (TLS) y en reposo (KMS)

📦 Integraciones comunes

Servicio AWSIntegración
CloudWatch LogsVía Subscriptions y Firehose
Kinesis FirehoseIngesta de datos a OpenSearch
LambdaGeneración y transformación de datos
S3Almacenamiento histórico + backups
EventBridgeAutomatizar ingestión o alertas

🔐 Seguridad

  • IAM + Fine-grained Access Control (RBAC)

  • Encriptación:

    • En reposo con AWS KMS

    • En tránsito (TLS 1.2)

  • Autenticación:

    • IAM

    • Cognito (para autenticación web a Dashboards)

    • Usuarios internos de OpenSearch

  • IP whitelisting / VPC access


🧰 Administración del clúster

ParámetroConsideración
Nodos de datosAlmacenan los datos e índices
Nodos de masterCoordinan el clúster (recomendado separarlos para alta disponibilidad)
Nodos warm/coldPara almacenamiento a bajo costo con menos frecuencia de acceso
Auto-TuneAjustes automáticos de performance (RAM, CPU) según uso del clúster
Snapshot automáticoA S3 para backup y restauración

🧪 Consultas básicas (REST API)

# Buscar documentos
GET /my-index/_search
{
  "query": {
    "match": {
      "status": "error"
    }
  }
}
# Insertar documento
POST /my-index/_doc
{
  "user": "ana",
  "action": "login",
  "status": "success"
}

💰 Precios (estimados)

Costo principalNotas
Por hora de instancia EC2Según tipo (t3.medium, r6g.large, etc.)
Almacenamiento EBSPor GB/mes (tipo gp3, io1, etc.)
Transferencia de datosComo en cualquier servicio AWS
Snapshots en S3Según tamaño y frecuencia
Almacenamiento UltraWarm/ColdMucho más barato (~$0.024/GB-mes)

💡 La opción Serverless para OpenSearch está en desarrollo para cargas variables.


🧠 Preguntas tipo certificación

  1. ¿Qué servicio te permite indexar y buscar grandes volúmenes de logs en AWS?

    • ✅ Amazon OpenSearch Service
  2. ¿Cómo puedes visualizar datos almacenados en OpenSearch?

    • ✅ Usando OpenSearch Dashboards
  3. ¿Cuál es el formato de los documentos en OpenSearch?

    • ✅ JSON
  4. ¿Puedes controlar quién accede a qué índices?

    • ✅ Sí, usando Fine-Grained Access Control
  5. ¿Puedes detectar anomalías automáticamente?

    • ✅ Sí, usando Anomaly Detection plugin

📚 Recursos útiles